/*
 * @Author: MarioGo
 * @Date: 2021-11-22 10:31:57
 * @LastEditTime: 2021-11-22 23:13:40
 * @LastEditors: MarioGo
 * @Description: 文件描述
 * @FilePath: /vite-vue3x-ts/vite.config.ts
 * 可以输入预定的版权声明、个性签名、空行等
 */
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
// 如果编辑器提示 path 模块找不到，则可以安装一下 @types/node -> npm i @types/node -D
import { resolve } from 'path';

export default defineConfig({
  plugins:[vue()], // 配置需要使用的插件列表，这里将vue添加进去
  // 配置文件别名 vite1.0是/@/  2.0改为/@
  // 这里是将src目录配置别名为 /@ 方便在项目中导入src目录下的文件
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src'), // 设置 `@` 指向 `src` 目录
      '@views': resolve(__dirname, 'src/views'),
      '@components': resolve(__dirname, 'src/components'),
      '@common': resolve(__dirname, 'src/common'),
      '@utils': resolve(__dirname, 'src/utils'),
    },
  },
  // 强制预构建插件包
  optimizeDeps: {
      include: ['axios','vue','vuex','vue-router'],
  },

  // 打包配置
  build: {
      brotliSize: false, //关闭打包计算
      target: 'modules',
      outDir: 'dist', //指定输出路径
      assetsDir: 'assets', // 指定生成静态资源的存放路径
      minify: false, // 混淆器，'terser'构建后文件体积更小
      rollupOptions: {
        output: {
            chunkFileNames: 'static/js/[name]-[hash].js',
            entryFileNames: 'static/js/[name]-[hash].js',
            assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
        },
    }
  },
  // 本地运行配置，及反向代理配置
  server: {
      cors: true, // 默认启用并允许任何源
      open: true, // 在服务器启动时自动在浏览器中打开应用程序
      //反向代理配置，注意rewrite写法，开始没看文档在这里踩了坑
      proxy: {
          '/api': {
              target: 'http://localhost:3000',   //代理接口
              changeOrigin: true,
              rewrite: (path) => path.replace(/^\/api/, '')
        }
      }
  }
})